package com.gkzf.ai.module.crm.service.creditReport;

import com.gkzf.ai.framework.common.pojo.CommonResult;
import com.gkzf.ai.framework.common.pojo.PageResult;
import com.gkzf.ai.module.crm.controller.admin.creditReport.vo.creditreportbasic.CreditReportBasicPageReqVO;
import com.gkzf.ai.module.crm.controller.admin.creditReport.vo.creditreportbasic.CreditReportBasicRespVO;
import com.gkzf.ai.module.crm.controller.admin.creditReport.vo.creditreportbasic.CreditReportBasicSaveReqVO;
import com.gkzf.ai.module.crm.dal.dataobject.creditReport.CreditReportBasicDO;
import jakarta.validation.Valid;


/**
 * CRM 征信报告基础 Service 接口
 *
 * @author 国科智飞
 */
public interface CreditReportBasicService {

    /**
     * 创建征信报告
     * @param creditReportBasic
     */
    void createCreditReport(CreditReportBasicDO creditReportBasic,String channelType,Long currentUserId);
    /**
     * 创建CRM 征信报告基础
     *
     * @param creditReportBasicSaveReqVO 征信报告
     * @param currentUserId 当前用户编号
     * @return 编号
     */
    CreditReportBasicDO createCreditReportBasic(CreditReportBasicSaveReqVO creditReportBasicSaveReqVO,Long currentUserId);

    /**
     * 更新CRM 征信报告基础
     *
     * @param updateReqVO 更新信息
     */
    void updateCreditReportBasic(@Valid CreditReportBasicSaveReqVO updateReqVO);

    /**
     * 删除CRM 征信报告基础
     *
     * @param id 编号
     */
    void deleteCreditReportBasic(Long id);

    /**
     * 匹配产品
     * @param id
     */
    CommonResult<Object> matchProduct(Long id);

    /**
     * 获得CRM 征信报告基础
     *
     * @param id 编号
     * @return CRM 征信报告基础
     */
    CreditReportBasicDO getCreditReportBasic(Long id);


    /**
     * 获得CRM 征信报告基础分页
     *
     * @param pageReqVO 分页查询
     * @return CRM 征信报告基础分页
     */
    PageResult<CreditReportBasicRespVO> getCreditReportBasicPage(CreditReportBasicPageReqVO pageReqVO);

    /**
     * 修改生成二维码提交状态
     * @param id
     */
    void updateIsSubmitQpCode(Long id,Integer educational);

}